package com.koocloud.electroplatemanage.common.util;

import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

public class CommonUtils {
    public static String md5(String plainText) {
        byte[] secretBytes = null;
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(plainText.getBytes());
            secretBytes = md.digest();
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("没有md5这个算法！");
        }
        //将加密后的数据转换为16进制数字
        String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字
        // 如果生成数字未满32位，需要前面补0
        for (int i = 0; i < 32 - md5code.length(); i++) {
            md5code = "0" + md5code;
        }
        return md5code;
    }
    
    
    
	/**
	 * 生产id 当前日期+两位uuid 数字
	 * 
	 * @param args
	 * @throws IOException
	 */
	public static String resultId() {
		String uuid = UUID.randomUUID().toString().replaceAll("-", "");
		String substring = uuid.substring(0, 2);
		String currentDate1 = CommonUtils.getCurrentDate().replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "");
		String result = currentDate1 + substring;
		return result;
	}
	
	/**
	 *  获取当前日期时间  ，格式为2013/07/11 00:00:01
	 */
	public static String getCurrentDate() {
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
		String date = df.format(new Date());// new Date()为获取当前系统时间，也可使用当前时间戳
		return date;
	}
	
	
	/**
	 *  获取当前日期时间TimeStamp类型的  ，格式为2013/07/11 00:00:01
	 */
	public static Timestamp getCurrentTime() {
		Timestamp ts = new Timestamp(System.currentTimeMillis());//设置日期格式
		return ts;
	}
	public static void main(String[] args) {
		System.out.println(getCurrentTime());
	}
}
